#pragma once

#include "object/gameobject.h"

namespace battle::object
{

    class Unit;
	class Transport : public battle::object::GameObject
	{
    public:
        explicit Transport();
        virtual ~Transport();

        bool AddPassenger(Unit* passenger);
        bool RemovePassenger(Unit* passenger);

        virtual void Update(unsigned int update_diff, unsigned int p_time) override {}
        virtual void DeleteFromDB() override {}

        auto& GetPassengers() const { return m_passengers; }

    protected:
        std::set<Unit*> m_passengers;
	};

}